/*
 *                          许可协议    
 *    
 *  COPYRIGHT ©2008 The Siox software project Lab.
 * 
 * 版权声明:                               
 *  1.任何"派生软件"都必须包含此许可协议,"派生软件的开发者"必   
 *  须完全保留被继承"软件"的许可协议和"版权信息".          
 *  2."派生软件开发者"在别人使用他所"派生"的"软件"时,自动成为"开
 *  发者".                               
 *  3."使用者"所生成的二进制代码文件须包含"原始开发者"的版权信息. 
 *  4.如该软件并未得到"开发者"的开源，那么"使用者"对本程序仅有使  
 *  用权，并不得进行反向工程.                      
 *  5.本协议保留"原始开发者"的版权信息在许可协议文本之内.
 *  6.本文档作为源代码/程序的基本协议,如有变化作为本协议扩充 
 *                                     
 * 免责声明:                               
 *  1.使用本"软件"都意味"使用者"是自愿使用本"软件",接受此许可协 
 *  议的所有条款.如果"使用者"不同意此许可协议就不能使用本"软件".  
 *  2.本"软件"虽然在开发者的开发环境下经过严格测试,但不能排除    
 *  "软件"中仍然存在错误.由于使用本"软件"所造成的任何损失,"开发  
 *  者"不负任何责任!                          
 *  3.本"软件"在被"使用"过程中,由"使用者"发现的任何错误必须再反 
 *  馈给"开发者"并经过"开发者"同意后,才可对其他人公开.任何未经过  
 *  "开发者"同意而被使用者擅自公开的本"软件"的错误,"开发者"有权  
 *  要求其对"开发者"名誉损失负法律责任. 
 * 
 *  个人主页:http://hi.baidu.com/lindily
 *  电子信箱:lindily@126.com               
 */
package cn.siox.util;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Vector;

/**
 * @类名 InputTable
 * @作者 Lindily
 * @日期 2008-11-21 2:31:36
 */
public class InputTable {

    Vector<Integer> v0 = new Vector<Integer>();
    Vector<String> v1 = new Vector<String>();
    Vector<String> v2 = new Vector<String>();
    static int page = 1;
    int count = 1;
    int maxPage;
    javax.swing.JTable table = null;

    public InputTable() {
    }

    public InputTable(javax.swing.JTable table) {
        this.table = table;
        try {
            FileReader fr = new FileReader("./data/area.dat");
            System.out.println(fr.getEncoding());
            BufferedReader br = new BufferedReader(fr);
            String str;
            String[] string = new String[2];
            while ((str = br.readLine()) != null) {
                if (fr.getEncoding().equals("UTF8")) {

                } else if(fr.getEncoding().equals("GBK")){
                    str=new   String(str.getBytes("GBK"),"UTF8");
                }else if(fr.getEncoding().equals("GB2312")){
                    str=new   String(str.getBytes("GB2312"),"UTF8");
                }else{
                    str="null error";
                }
                string = str.split(" ");
                v0.add(count);
                v1.add(string[0]);
                v2.add(string[1]);
                count++;
            }
            br.close();
            fr.close();
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }
        //maxPage = Math.round(count / 100) + 1;
        maxPage =count/100+1;
        System.out.println("maxpage="+maxPage);
    }

    public javax.swing.JTable defaultInput() {
        for (int i = 0; i < 100; i++) {
            table.setValueAt(v0.get(i), i, 0);
            table.setValueAt(v1.get(i), i, 1);
            table.setValueAt(v2.get(i), i, 2);
            //System.out.println(v0.get(i) + "  " + v1.get(i) + v2.get(i));
        }
        return table;
    }

    public javax.swing.JTable InputDown() {
        page++;
        if (page >= maxPage) {
            page = maxPage;
        }
        for (int i = 0; i < 100 && (page * 100 + i) < v0.size(); i++) {
            table.setValueAt(v0.get(page * 100 + i), i, 0);
            table.setValueAt(v1.get(page * 100 + i), i, 1);
            table.setValueAt(v2.get(page * 100 + i), i, 2);
        }
        table.removeAll();
        System.out.println(page);
        return table;
    }

    public javax.swing.JTable InputUp() {
        --page;
        if(page>=maxPage){
            page=maxPage;
        }
        if (page < 0) {
            page = 0;
        }
        System.out.println(page);
        for (int i = 0; i < 100; i++) {
            table.setValueAt(v0.get(page * 100 + i), i, 0);
            table.setValueAt(v1.get(page * 100 + i), i, 1);
            table.setValueAt(v2.get(page * 100 + i), i, 2);
        }
        return table;
    }
}
